// --------------------------------------------------------------------------------------------------------------------
// <copyright file="LocalVariable.cs" company="dimamartovoi">
//   Apache License
//   Version 2.0, January 2004
//   http://www.apache.org/licenses
// </copyright>
// <summary>
//   Defines the LocalVariable type.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

using System;
using System.Reflection.Emit;

namespace ActorModel.Evolution.SemanticAnalyzing
{
    /// <summary>
    ///     The local variable.
    /// </summary>
    public class LocalVariable
    {
        #region Constructors and Destructors

        /// <summary>
        /// Initializes a new instance of the <see cref="LocalVariable"/> class.
        /// </summary>
        /// <param name="id">
        /// The id.
        /// </param>
        /// <param name="type">
        /// The type.
        /// </param>
        /// <param name="builder">
        /// The builder.
        /// </param>
        public LocalVariable(string id, Type type, LocalBuilder builder)
        {
            this.Type = type;
            this.Builder = builder;
            this.Id = id;
        }

        #endregion

        #region Public Properties

        /// <summary>
        ///     Gets the builder.
        /// </summary>
        public LocalBuilder Builder { get; private set; }

        /// <summary>
        ///     Gets the id.
        /// </summary>
        public string Id { get; private set; }

        /// <summary>
        ///     Gets the type.
        /// </summary>
        public Type Type { get; private set; }

        #endregion
    }
}